﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	///<summary>
	///Состояние объекта для целей НДС
	///</summary>
	[DataContract]
	public enum НДССостоянияОСНМА
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"c8467f7a-79bb-426e-92ec-be50aca0007d\", \"Представление\":\"ОжидаетсяПринятиеКУчетуОС\"}")]
		ОжидаетсяПринятиеКУчетуОС = 0,//Ожидается принятие к учету ОС
		[EnumMember(Value = "{\"Ссылка\":\"70f22951-190b-4d0d-a9af-444ba6d6e19e\", \"Представление\":\"ОжидаетсяПринятиеКУчетуОбъектаСтроительства\"}")]
		ОжидаетсяПринятиеКУчетуОбъектаСтроительства = 1,//Ожидается принятие к учету объекта строительства
		[EnumMember(Value = "{\"Ссылка\":\"c8001d44-22ca-40d1-af0f-443dc8528e17\", \"Представление\":\"ОжидаетсяВводВЭксплуатацию\"}")]
		ОжидаетсяВводВЭксплуатацию = 2,//Ожидается ввод в эксплуатацию
	}
	public static partial class НДССостоянияОСНМА_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid ОжидаетсяПринятиеКУчетуОС = new Guid("50beec92-a0ac-7d00-426e-79bbc8467f7a");//Ожидается принятие к учету ОС
		public static readonly Guid ОжидаетсяПринятиеКУчетуОбъектаСтроительства = new Guid("4b44afa9-d6a6-9ee1-4d0d-190b70f22951");//Ожидается принятие к учету объекта строительства
		public static readonly Guid ОжидаетсяВводВЭксплуатацию = new Guid("3d440faf-52c8-178e-40d1-22cac8001d44");//Ожидается ввод в эксплуатацию
		public static НДССостоянияОСНМА Получить(this НДССостоянияОСНМА Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static НДССостоянияОСНМА Получить(this НДССостоянияОСНМА Значение, Guid Ссылка)
		{
			if(Ссылка == ОжидаетсяПринятиеКУчетуОС)
			{
				return НДССостоянияОСНМА.ОжидаетсяПринятиеКУчетуОС;
			}
			else if(Ссылка == ОжидаетсяПринятиеКУчетуОбъектаСтроительства)
			{
				return НДССостоянияОСНМА.ОжидаетсяПринятиеКУчетуОбъектаСтроительства;
			}
			else if(Ссылка == ОжидаетсяВводВЭксплуатацию)
			{
				return НДССостоянияОСНМА.ОжидаетсяВводВЭксплуатацию;
			}
			return НДССостоянияОСНМА.ПустаяСсылка;
		}
		public static byte[] Ключ(this НДССостоянияОСНМА Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this НДССостоянияОСНМА Значение)
		{
			switch (Значение)
			{
				case НДССостоянияОСНМА.ОжидаетсяПринятиеКУчетуОС: return ОжидаетсяПринятиеКУчетуОС;
				case НДССостоянияОСНМА.ОжидаетсяПринятиеКУчетуОбъектаСтроительства: return ОжидаетсяПринятиеКУчетуОбъектаСтроительства;
				case НДССостоянияОСНМА.ОжидаетсяВводВЭксплуатацию: return ОжидаетсяВводВЭксплуатацию;
			}
			return Guid.Empty;
		}
	}
}